package net.borlis.sample.web.context;

import net.borlis.gen.ws.soap.*;

import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;

/**
 * @author alex@borlis.net
 */
@RequestScoped
public class SoapExecutorContext implements SoapExecutorWeldWebContext {

    //todo:: think about parametrization!!! #sprint16 #maverick

    // -=-=-=-

//    @Inject
//    private SoapHomer<Request, Response> parametrizedHomer;
//
//    public Response sendParametrizedRequest(Request request) {
//        return parametrizedHomer.sendRequest(request);
//    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetLocalesRQType, GetLocalesRSType> homerGetLocales;

    @Override
    public GetLocalesRSType sendRequest(GetLocalesRQType request) {
        return homerGetLocales.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetCountriesRQType, GetCountriesRSType> homerGetCountries;

    @Override
    public GetCountriesRSType sendRequest(GetCountriesRQType request) {
        return homerGetCountries.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetHierarchyLevelsRQType, GetHierarchyLevelsRSType> homerGetHL;

    @Override
    public GetHierarchyLevelsRSType sendRequest(GetHierarchyLevelsRQType request) {
        return homerGetHL.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetBookingConfigStrategiesRQType, GetBookingConfigStrategiesRSType> homerGetBCS;

    @Override
    public GetBookingConfigStrategiesRSType sendRequest(GetBookingConfigStrategiesRQType request) {
        return homerGetBCS.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetFlightProvidersRQType, GetFlightProvidersRSType> homerGetFP;

    @Override
    public GetFlightProvidersRSType sendRequest(GetFlightProvidersRQType request) {
        return homerGetFP.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetHotelProvidersRQType, GetHotelProvidersRSType> homerGetHP;

    @Override
    public GetHotelProvidersRSType sendRequest(GetHotelProvidersRQType request) {
        return homerGetHP.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetVitosByUserRQType, GetVitosByUserRSType> homerGetVitosByUser;

    @Override
    public GetVitosByUserRSType sendRequest(GetVitosByUserRQType request) {
        return homerGetVitosByUser.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<CreateTravelPeriodRQType, CreateTravelPeriodRSType> homerCreateTP;

    @Override
    public CreateTravelPeriodRSType sendRequest(CreateTravelPeriodRQType request) {
        return homerCreateTP.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<DeleteTravelPeriodRQType, DeleteTravelPeriodRSType> homerDeleteTP;

    @Override
    public DeleteTravelPeriodRSType sendRequest(DeleteTravelPeriodRQType request) {
        return homerDeleteTP.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetTravelPeriodRQType, GetTravelPeriodRSType> homerGetTP;

    @Override
    public GetTravelPeriodRSType sendRequest(GetTravelPeriodRQType request) {
        return homerGetTP.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetTravelPeriodsRQType, GetTravelPeriodsRSType> homerGetTPs;

    @Override
    public GetTravelPeriodsRSType sendRequest(GetTravelPeriodsRQType request) {
        return homerGetTPs.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<UpdateTravelPeriodRQType, UpdateTravelPeriodRSType> homerUpdateTP;

    @Override
    public UpdateTravelPeriodRSType sendRequest(UpdateTravelPeriodRQType request) {
        return homerUpdateTP.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<CreateVitoAddressRQType, CreateVitoAddressRSType> homerCreateVA;

    @Override
    public CreateVitoAddressRSType sendRequest(CreateVitoAddressRQType request) {
        return homerCreateVA.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<DeleteVitoAddressRQType, DeleteVitoAddressRSType> homerDeleteVA;

    @Override
    public DeleteVitoAddressRSType sendRequest(DeleteVitoAddressRQType request) {
        return homerDeleteVA.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetVitoAddressRQType, GetVitoAddressRSType> homerGetVA;

    @Override
    public GetVitoAddressRSType sendRequest(GetVitoAddressRQType request) {
        return homerGetVA.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetVitoAddressesRQType, GetVitoAddressesRSType> homerGetVAs;

    @Override
    public GetVitoAddressesRSType sendRequest(GetVitoAddressesRQType request) {
        return homerGetVAs.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<UpdateVitoAddressRQType, UpdateVitoAddressRSType> homerUpdateVA;

    @Override
    public UpdateVitoAddressRSType sendRequest(UpdateVitoAddressRQType request) {
        return homerUpdateVA.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<CreateCreditCardRQType, CreateCreditCardRSType> homerCreateCC;

    @Override
    public CreateCreditCardRSType sendRequest(CreateCreditCardRQType request) {
        return homerCreateCC.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<DeleteCreditCardRQType, DeleteCreditCardRSType> homerDeleteCC;

    @Override
    public DeleteCreditCardRSType sendRequest(DeleteCreditCardRQType request) {
        return homerDeleteCC.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetCreditCardRQType, GetCreditCardRSType> homerGetCC;

    @Override
    public GetCreditCardRSType sendRequest(GetCreditCardRQType request) {
        return homerGetCC.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetCreditCardsRQType, GetCreditCardsRSType> homerGetCCs;

    @Override
    public GetCreditCardsRSType sendRequest(GetCreditCardsRQType request) {
        return homerGetCCs.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<UpdateCreditCardRQType, UpdateCreditCardRSType> homerUpdateCC;

    @Override
    public UpdateCreditCardRSType sendRequest(UpdateCreditCardRQType request) {
        return homerUpdateCC.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<CreateBankAccountRQType, CreateBankAccountRSType> homerCreateBA;

    @Override
    public CreateBankAccountRSType sendRequest(CreateBankAccountRQType request) {
        return homerCreateBA.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<DeleteBankAccountRQType, DeleteBankAccountRSType> homerDeleteBA;

    @Override
    public DeleteBankAccountRSType sendRequest(DeleteBankAccountRQType request) {
        return homerDeleteBA.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetBankAccountRQType, GetBankAccountRSType> homerGetBA;

    @Override
    public GetBankAccountRSType sendRequest(GetBankAccountRQType request) {
        return homerGetBA.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetBankAccountsRQType, GetBankAccountsRSType> homerGetBAs;

    @Override
    public GetBankAccountsRSType sendRequest(GetBankAccountsRQType request) {
        return homerGetBAs.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<UpdateBankAccountRQType, UpdateBankAccountRSType> homerUpdateBA;

    @Override
    public UpdateBankAccountRSType sendRequest(UpdateBankAccountRQType request) {
        return homerUpdateBA.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetBookingConfigRQType, GetBookingConfigRSType> homerGetBC;

    @Override
    public GetBookingConfigRSType sendRequest(GetBookingConfigRQType request) {
        return homerGetBC.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<UpdateBookingConfigRQType, UpdateBookingConfigRSType> homerUpdateBC;

    @Override
    public UpdateBookingConfigRSType sendRequest(UpdateBookingConfigRQType request) {
        return homerUpdateBC.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetPortfolioProviderDefaultSettingsRQType, GetPortfolioProviderDefaultSettingsRSType> homerGetPPSettings;

    @Override
    public GetPortfolioProviderDefaultSettingsRSType sendRequest(GetPortfolioProviderDefaultSettingsRQType request) {
        return homerGetPPSettings.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<UpdatePortfolioProviderDefaultSettingRQType, UpdatePortfolioProviderDefaultSettingRSType> homerUpdatePPSettings;

    @Override
    public UpdatePortfolioProviderDefaultSettingRSType sendRequest(UpdatePortfolioProviderDefaultSettingRQType request) {
        return homerUpdatePPSettings.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetPortfolioProviderDefaultMarginSettingsRQType, GetPortfolioProviderDefaultMarginSettingsRSType> homerGetPPMargins;

    @Override
    public GetPortfolioProviderDefaultMarginSettingsRSType sendRequest(GetPortfolioProviderDefaultMarginSettingsRQType request) {
        return homerGetPPMargins.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<UpdatePortfolioProviderDefaultMarginSettingRQType, UpdatePortfolioProviderDefaultMarginSettingRSType> homerUpdatePPMargins;

    @Override
    public UpdatePortfolioProviderDefaultMarginSettingRSType sendRequest(UpdatePortfolioProviderDefaultMarginSettingRQType request) {
        return homerUpdatePPMargins.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetVitoConfigurationStatesRQType, GetVitoConfigurationStatesRSType> homerGetConfigurationsLC;

    @Override
    public GetVitoConfigurationStatesRSType sendRequest(GetVitoConfigurationStatesRQType request) {
        return homerGetConfigurationsLC.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<RevertVitoConfigurationRQType, RevertVitoConfigurationRSType> homerRevertConfigurationsLC;

    @Override
    public RevertVitoConfigurationRSType sendRequest(RevertVitoConfigurationRQType request) {
        return homerRevertConfigurationsLC.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<RestoreVitoConfigurationRQType, RestoreVitoConfigurationRSType> homerRestoreConfigurationsLC;

    @Override
    public RestoreVitoConfigurationRSType sendRequest(RestoreVitoConfigurationRQType request) {
        return homerRestoreConfigurationsLC.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<UploadVitoConfigurationRQType, UploadVitoConfigurationRSType> homerUploadConfigurationsLC;

    @Override
    public UploadVitoConfigurationRSType sendRequest(UploadVitoConfigurationRQType request) {
        return homerUploadConfigurationsLC.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<CancelVitoConfigurationUploadRQType, CancelVitoConfigurationUploadRSType> homerCancelConfigurationsLC;

    @Override
    public CancelVitoConfigurationUploadRSType sendRequest(CancelVitoConfigurationUploadRQType request) {
        return homerCancelConfigurationsLC.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<ConfirmLifecycleActionRQType, ConfirmLifecycleActionRSType> homerConfirmActionLC;

    @Override
    public ConfirmLifecycleActionRSType sendRequest(ConfirmLifecycleActionRQType request) {
        return homerConfirmActionLC.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetAvailableActionsForLifecycleManagementRQType, GetAvailableActionsForLifecycleManagementRSType> homerGetActionsLC;

    @Override
    public GetAvailableActionsForLifecycleManagementRSType sendRequest(GetAvailableActionsForLifecycleManagementRQType request) {
        return homerGetActionsLC.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetVitoActiveHotelProvidersRQType, GetVitoActiveHotelProvidersRSType> homerGetActiveHP;

    @Override
    public GetVitoActiveHotelProvidersRSType sendRequest(GetVitoActiveHotelProvidersRQType request) {
        return homerGetActiveHP.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetVitoActiveFlightProvidersRQType, GetVitoActiveFlightProvidersRSType> homerGetActiveFP;

    @Override
    public GetVitoActiveFlightProvidersRSType sendRequest(GetVitoActiveFlightProvidersRQType request) {
        return homerGetActiveFP.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<CreateVitoRQType, CreateVitoRSType> homerCreateVito;

    @Override
    public CreateVitoRSType sendRequest(CreateVitoRQType request) {
        return homerCreateVito.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<ConfigureVitoRQType, ConfigureVitoRSType> homerConfigureVito;

    @Override
    public ConfigureVitoRSType sendRequest(ConfigureVitoRQType request) {
        return homerConfigureVito.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetVitoRQType, GetVitoRSType> homerGetVito;

    @Override
    public GetVitoRSType sendRequest(GetVitoRQType request) {
        return homerGetVito.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetVitoFilterRQType, GetVitoFilterRSType> homerGetVitoFilter;

    @Override
    public GetVitoFilterRSType sendRequest(GetVitoFilterRQType request) {
        return homerGetVitoFilter.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetVitosByFilterRQType, GetVitosByFilterRSType> homerGetFilteredVitos;

    @Override
    public GetVitosByFilterRSType sendRequest(GetVitosByFilterRQType request) {
        return homerGetFilteredVitos.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetVitoHotelProvidersRQType, GetVitoHotelProvidersRSType> homerVitoHP;

    @Override
    public GetVitoHotelProvidersRSType sendRequest(GetVitoHotelProvidersRQType request) {
        return homerVitoHP.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetVitoFlightProvidersRQType, GetVitoFlightProvidersRSType> homerVitoFP;

    @Override
    public GetVitoFlightProvidersRSType sendRequest(GetVitoFlightProvidersRQType request) {
        return homerVitoFP.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetVitoPortfolioHotelProviderDefaultSettingsRQType, GetVitoPortfolioHotelProviderDefaultSettingsRSType> homerVitoHPPSettings;

    @Override
    public GetVitoPortfolioHotelProviderDefaultSettingsRSType sendRequest(GetVitoPortfolioHotelProviderDefaultSettingsRQType request) {
        return homerVitoHPPSettings.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetVitoPortfolioHotelProviderDefaultMarginSettingsRQType, GetVitoPortfolioHotelProviderDefaultMarginSettingsRSType> homerVitoHPPMargins;

    @Override
    public GetVitoPortfolioHotelProviderDefaultMarginSettingsRSType sendRequest(GetVitoPortfolioHotelProviderDefaultMarginSettingsRQType request) {
        return homerVitoHPPMargins.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetVitoPortfolioFlightProviderDefaultSettingsRQType, GetVitoPortfolioFlightProviderDefaultSettingsRSType> homerVitoFPPSettings;

    @Override
    public GetVitoPortfolioFlightProviderDefaultSettingsRSType sendRequest(GetVitoPortfolioFlightProviderDefaultSettingsRQType request) {
        return homerVitoFPPSettings.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetVitoPortfolioFlightProviderDefaultMarginSettingsRQType, GetVitoPortfolioFlightProviderDefaultMarginSettingsRSType> homerVitoFPPMargins;

    @Override
    public GetVitoPortfolioFlightProviderDefaultMarginSettingsRSType sendRequest(GetVitoPortfolioFlightProviderDefaultMarginSettingsRQType request) {
        return homerVitoFPPMargins.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetPortfolioDefaultSettingsRQType, GetPortfolioDefaultSettingsRSType> homerGetPortfolioSettings;

    @Override
    public GetPortfolioDefaultSettingsRSType sendRequest(GetPortfolioDefaultSettingsRQType request) {
        return homerGetPortfolioSettings.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<UpdatePortfolioDefaultSettingRQType, UpdatePortfolioDefaultSettingRSType> homerUpdatePortfolioSettings;

    @Override
    public UpdatePortfolioDefaultSettingRSType sendRequest(UpdatePortfolioDefaultSettingRQType request) {
        return homerUpdatePortfolioSettings.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<GetPortfolioDefaultMarginSettingsRQType, GetPortfolioDefaultMarginSettingsRSType> homerGetPortfolioMargins;

    @Override
    public GetPortfolioDefaultMarginSettingsRSType sendRequest(GetPortfolioDefaultMarginSettingsRQType request) {
        return homerGetPortfolioMargins.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<UpdatePortfolioDefaultMarginSettingRQType, UpdatePortfolioDefaultMarginSettingRSType> homerUpdatePortfolioMargins;

    @Override
    public UpdatePortfolioDefaultMarginSettingRSType sendRequest(UpdatePortfolioDefaultMarginSettingRQType request) {
        return homerUpdatePortfolioMargins.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<PropagatePortfolioDefaultSettingReleaseDaysRQType, PropagatePortfolioDefaultSettingReleaseDaysRSType> homerPropPortfolioRDSettings;

    @Override
    public PropagatePortfolioDefaultSettingReleaseDaysRSType sendRequest(PropagatePortfolioDefaultSettingReleaseDaysRQType request) {
        return homerPropPortfolioRDSettings.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<PropagatePortfolioDefaultSettingTravelDurationsRQType, PropagatePortfolioDefaultSettingTravelDurationsRSType> homerPropPortfolioTDSettings;

    @Override
    public PropagatePortfolioDefaultSettingTravelDurationsRSType sendRequest(PropagatePortfolioDefaultSettingTravelDurationsRQType request) {
        return homerPropPortfolioTDSettings.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<PropagatePortfolioDefaultSettingFirstFixedMarginRQType, PropagatePortfolioDefaultSettingFirstFixedMarginRSType> homerPropPortfolioFFMSettings;

    @Override
    public PropagatePortfolioDefaultSettingFirstFixedMarginRSType sendRequest(PropagatePortfolioDefaultSettingFirstFixedMarginRQType request) {
        return homerPropPortfolioFFMSettings.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<PropagatePortfolioDefaultSettingSecondFixedMarginRQType, PropagatePortfolioDefaultSettingSecondFixedMarginRSType> homerPropPortfolioSFMSettings;

    @Override
    public PropagatePortfolioDefaultSettingSecondFixedMarginRSType sendRequest(PropagatePortfolioDefaultSettingSecondFixedMarginRQType request) {
        return homerPropPortfolioSFMSettings.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<PropagatePortfolioDefaultSettingRelativeMarginRQType, PropagatePortfolioDefaultSettingRelativeMarginRSType> homerPropPortfolioRMSettings;

    @Override
    public PropagatePortfolioDefaultSettingRelativeMarginRSType sendRequest(PropagatePortfolioDefaultSettingRelativeMarginRQType request) {
        return homerPropPortfolioRMSettings.sendRequest(request);
    }

    // -=-=-=-
    @Inject
    private SoapHomer<PropagatePortfolioDefaultSettingPackagingRQType, PropagatePortfolioDefaultSettingPackagingRSType> homerPropPortfolioPackSettings;

    @Override
    public PropagatePortfolioDefaultSettingPackagingRSType sendRequest(PropagatePortfolioDefaultSettingPackagingRQType request) {
        return homerPropPortfolioPackSettings.sendRequest(request);
    }

}
